/* Botón siguiente después de la tabla de resultados (obsoleto)*/ document.addEventListener('DOMContentLoaded', function () { const pagination = document.querySelector('.user-dashboard-pagination'); const list = document.querySelector('.widefat.user-dashboard-list'); if (pagination && list) { // Mueve el div de paginación después del div de la lista list.parentNode.insertBefore(pagination, list.nextSibling); } }); /* Fecha en títulos de lecciones */ document.addEventListener("DOMContentLoaded", () => { // Selecciona todos los elementos con la clase `ld-lesson-title` document.querySelectorAll('.ld-lesson-title').forEach(element => { // Obtiene el texto original del elemento const originalText = element.textContent.trim(); // Divide el texto en dos partes usando el delimitador `#%` const [title, date] = originalText.split('->'); // Modifica el contenido del div para incluir las partes separadas element.innerHTML = ` ${title.trim()}
Fecha: ${date.trim()} `; }); }); /* Tabla de Resultados de simulacros */ document.addEventListener("DOMContentLoaded", function () { if (document.body.classList.contains('page-id-6049')) { const table = document.querySelector("table.widefat.user-dashboard-list"); if (table) { // Aplicar el filtro antes de mostrar la tabla const rows = table.querySelectorAll("tbody tr"); rows.forEach((row) => { const evaluationNameCell = row.querySelector("td:nth-child(2)"); const evaluationName = evaluationNameCell?.innerText.trim().toLowerCase() || ""; if (!evaluationName.includes("simulacro")) { row.style.display = "none"; // Oculta las filas que no cumplen } }); // Mostrar la tabla con fade-in después del filtrado table.style.visibility = "visible"; // Hace que la tabla vuelva a ocupar espacio table.style.opacity = "1"; // Aplica la animación de opacidad } } }); /* Clases al lado del menú móvil */ document.addEventListener("DOMContentLoaded", function () { const mobileNav = document.querySelector(".ld-mobile-nav"); if (mobileNav) { // Crear el texto flotante const tooltip = document.createElement("div"); tooltip.className = "ld-mobile-nav-tooltip"; tooltip.textContent = "Clases"; // Agregar el texto flotante al botón del menú mobileNav.style.position = "relative"; // Asegurar que el contenedor sea relativo mobileNav.appendChild(tooltip); } }); /* Mostrar sólo primer nombre en comentarios */ document.addEventListener("DOMContentLoaded", function () { document.querySelectorAll(".ld-comment-author-name").forEach(function (element) { let fullName = element.textContent.trim(); let firstName = fullName.split(" ")[0]; // Obtiene solo el primer nombre element.textContent = firstName; }); }); /* Colores según tema en el calendario */ function actualizarColoresEventos() { const eventos = document.querySelectorAll(".fc-daygrid-event"); eventos.forEach(evento => { const titulo = evento.querySelector(".fc-event-title"); if (titulo) { titulo.classList.remove("evento-simulacro", "evento-salud-publica"); if (titulo.textContent.toLowerCase().includes("simulacro")) { evento.style.backgroundColor = "#ffdfec"; titulo.classList.add("evento-simulacro"); } else if (titulo.textContent.toLowerCase().includes("salud pública")) { evento.style.backgroundColor = "#e8eaff"; titulo.classList.add("evento-salud-publica"); } else if (titulo.textContent.toLowerCase().includes("cuidado integral")) { evento.style.backgroundColor = "#f8f7fd"; titulo.classList.add("evento-cuidado-integral"); } else if (titulo.textContent.toLowerCase().includes("ética")) { evento.style.backgroundColor = "#0dba9c15"; titulo.classList.add("evento-etica"); } else if (titulo.textContent.toLowerCase().includes("investigación")) { evento.style.backgroundColor = "#ff832315"; titulo.classList.add("evento-investigacion"); } else if (titulo.textContent.toLowerCase().includes("gestión")) { evento.style.backgroundColor = "#ad3eff15"; titulo.classList.add("evento-gestion"); } else if (titulo.textContent.toLowerCase().includes("introductoria")) { evento.style.backgroundColor = "#f8f7fd"; titulo.classList.add("evento-introductoria"); } else if (titulo.textContent.toLowerCase().includes("resumen")) { evento.style.backgroundColor = "#FFFEE6"; titulo.classList.add("evento-resumen"); } else if (titulo.textContent.toLowerCase().includes("receso")) { evento.style.backgroundColor = "#EBFFF3"; titulo.classList.add("evento-receso"); } else { evento.style.backgroundColor = "#e8eaff"; } } }); } const observer = new MutationObserver((mutationsList, observer) => { // Verifica si se añadieron nodos al calendario for (const mutation of mutationsList) { if (mutation.addedNodes.length) { actualizarColoresEventos(); } } }); // Observar el contenedor principal del calendario const esperarCalendario = setInterval(() => { const contenedorCalendario = document.querySelector(".fc-view-harness"); if (contenedorCalendario) { observer.observe(contenedorCalendario, { childList: true, subtree: true }); actualizarColoresEventos(); // también ejecutamos al inicio clearInterval(esperarCalendario); } }, 300); /* Número de pregunta del total, Posttests */ function updateAllPageCounts() { document.querySelectorAll(".pages_count").forEach((counter) => { if (counter.innerText.includes("out of")) { counter.innerText = counter.innerText.replace(" out of ", "/"); } }); } document.addEventListener("DOMContentLoaded", function () { // Ejecutar una vez al inicio updateAllPageCounts(); // Observar todo el body por si se cargan quizzes dinámicamente const observer = new MutationObserver(() => { updateAllPageCounts(); }); observer.observe(document.body, { childList: true, subtree: true }); }); /* Número de pregunta del total, Flashcards */ document.addEventListener("DOMContentLoaded", function () { const cardsText = document.querySelector(".cards-panel"); // o usa un selector más específico si es necesario if (cardsText) { cardsText.innerHTML = cardsText.innerHTML.replace("Card", ""); } }); document.addEventListener("DOMContentLoaded", function () { const cardsText = document.querySelector(".cards-panel"); // o usa un selector más específico si es necesario if (cardsText) { cardsText.innerHTML = cardsText.innerHTML.replace(" of ", "/"); } }); /* Numerar las preguntas de los examenes */ (function () { // Función que numera las preguntas function renumerarPreguntas() { const questionSections = document.querySelectorAll(".qsm_questions_answers_section"); questionSections.forEach((section) => { const questionNumbers = section.querySelectorAll(".mlw_qmn_question_number"); questionNumbers.forEach((el, index) => { el.textContent = (index + 1) + ". "; }); }); } // Observador que detecta nuevos contenidos dinámicos const globalObserver = new MutationObserver((mutationsList) => { for (let mutation of mutationsList) { if (mutation.type === "childList") { // Verifica si se añadió una sección de preguntas const addedNodes = Array.from(mutation.addedNodes); for (let node of addedNodes) { if ( node.nodeType === 1 && // ELEMENT_NODE node.classList.contains("qsm_questions_answers_section") || (node.querySelector && node.querySelector(".qsm_questions_answers_section")) ) { renumerarPreguntas(); } } } } }); // Esperar a que el DOM esté listo document.addEventListener("DOMContentLoaded", function () { globalObserver.observe(document.body, { childList: true, subtree: true, }); // Ejecutar también al inicio por si ya está cargado renumerarPreguntas(); }); })(); /* Abrir último elemento de Manuales*/ document.addEventListener("DOMContentLoaded", function () { setTimeout(function () { const detailsList = document.querySelectorAll('.e-n-accordion-item'); if (detailsList.length > 0) { // Cierra todos detailsList.forEach(details => details.removeAttribute("open")); // Simula clic en el último para abrirlo correctamente const lastDetails = detailsList[detailsList.length - 1]; const summary = lastDetails.querySelector('summary'); if (summary) { summary.click(); // Usa el método oficial del plugin } } }, 800); // Ajusta si Elementor tarda más }); /* Mostrar puntaje */ document.addEventListener("DOMContentLoaded", function() { function actualizarPuntajes() { const celdas = document.querySelectorAll("td.post-title.column-title span"); celdas.forEach(function(celda) { const texto = celda.innerText; const match = texto.match(/(\d+(\.\d+)?)\sPoints/); if (match) { const numero = parseFloat(match[1]); const redondeado = numero.toFixed(2); // Redondea a 2 decimales celda.innerText = redondeado; } }); } setTimeout(actualizarPuntajes, 90); setTimeout(actualizarPuntajes, 1500); }); /* Ordenar tabla de Resultados de POST-TESTS */ document.addEventListener("DOMContentLoaded", function () { console.log("DOM listo. Ejecutando observer..."); const observer = new MutationObserver(() => { const table = document.querySelector("table.widefat.user-dashboard-list"); if (!table) return; const tbody = table.querySelector("tbody"); if (!tbody) return; const testCell = tbody.querySelector("tr td:nth-child(2)"); if (!testCell) return; const text = testCell.innerText.trim(); if (!text) return; // ¡La tabla ya está cargada con datos! observer.disconnect(); //console.log("Tabla detectada. Ejecutando ordenamiento..."); ordenarTabla(); }); observer.observe(document.body, { childList: true, subtree: true }); function ordenarTabla() { const table = document.querySelector("table.widefat.user-dashboard-list"); if (!table) { //console.log("No se encontró la tabla"); return; } const tbody = table.querySelector("tbody"); if (!tbody) { //console.log("No se encontró tbody"); return; } const allRows = Array.from(tbody.querySelectorAll("tr")); //console.log("Cantidad de filas:", allRows.length); let pairs = []; for (let i = 0; i < allRows.length; i += 2) { const row1 = allRows[i]; const row2 = allRows[i + 1]; let text = ""; if (row1) { const td2 = row1.querySelector("td:nth-child(2)"); if (td2) { text = td2.innerText.trim().toLowerCase(); } } pairs.push({ text, rows: [row1, row2].filter(Boolean), }); } //console.log("Pares antes de ordenar:", pairs.map(p => p.text)); pairs.sort((a, b) => a.text.localeCompare(b.text)); //console.log("Pares después de ordenar:", pairs.map(p => p.text)); tbody.innerHTML = ""; pairs.forEach(pair => { pair.rows.forEach(row => { tbody.appendChild(row); }); }); //console.log("Tabla reordenada."); } });